﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Financeiro.Model;
using System.Data;

namespace Financeiro
{
    public partial class NotaFiscal : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            // javascript para impressao
            bntImprimir.Attributes.Add("onclick", "javascript:CallPrint();");

            // preenchimento dos dados
            dadosEmpresa();

            // pega o id da conta
            int id = Convert.ToInt32(Request.QueryString["id"]);
            // pega o id do cliente
            int id_Cliente = NotaFiscalModel.buscaIdCliente(id);



            // cria o objeto NotaFiscal
            NotaFiscalModel notaFiscal = new NotaFiscalModel(id, id_Cliente);

            // pega o número de atendimento
            lblNumeroSerie.Text = notaFiscal.idAtendimento().ToString();


            // pega a data de pagamento
            lblData.Text = notaFiscal.dataPagamento();



            // pega os dados dos clientes
            dadosCliente(notaFiscal);
            

            // exibe os serviços utilizados
            grdServicos.DataSource = notaFiscal.servicosUtilizados();
            grdServicos.DataBind();

            //calcula os impostos e o valor total, exibindo na tela
            calcularTotal(notaFiscal);

        }

        private void dadosEmpresa()
        {
            DataTable dt = NotaFiscalModel.dadosEmpresa();

            lblEmpresa.Text = dt.Rows[0]["Nome"].ToString();
            lblEndereco.Text = dt.Rows[0]["Endereco"].ToString();
            lblCNPJ.Text = dt.Rows[0]["CNPJ"].ToString();
            lblTelefone.Text = dt.Rows[0]["Telefone"].ToString();
        }


        private void dadosCliente(NotaFiscalModel notaFiscal)
        {
            DataTable dt = notaFiscal.dadosCliente();

            lblNome.Text = dt.Rows[0]["Nome"].ToString();
            lblEndCli.Text = dt.Rows[0]["Endereco"].ToString();
            lblBairro.Text = dt.Rows[0]["Bairro"].ToString();
            lblMunicipio.Text = dt.Rows[0]["Municipio"].ToString();
            lblCep.Text = dt.Rows[0]["CEP"].ToString();
            lblEstado.Text = dt.Rows[0]["Estado"].ToString();
            lblCNPJCli.Text = dt.Rows[0]["CNPJ"].ToString();
            lblIncrCli.Text = dt.Rows[0]["Inscricao"].ToString();

        }


        private void calcularTotal(NotaFiscalModel notaFiscal)
        {
            //calcula os impostos
            ImpostosServico impostos = notaFiscal.calculaImpostos();
            
            string total = notaFiscal.calculaTotal(impostos);
            lblTotal.Text = total;

            // exibe      
            exibeImpostos(impostos);
        }

        private void exibeImpostos(ImpostosServico impostos)
        {
            lblCofins.Text = impostos.valorCofins().ToString("c");
            lblPis.Text = impostos.valorPIS().ToString("c");
            lblINSS.Text = impostos.valorINSS().ToString("c");
            lblIR.Text = impostos.valorIR().ToString("c");
            lblISS.Text = impostos.valorISS().ToString("c");
            lblTotalImposto.Text = impostos.totalImposto().ToString("c");

        }
    }
}